Skip to main content
GET
/
stores
/
{id}
Get store
curl --request GET \
  --url https://api.example.com/stores/{id}
{
  "data": {
    "id": "downtown-kitchen",
    "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "brand_id": "0001",
    "name": "Downtown Kitchen",
    "status": "ACTIVE",
    "timezone": "America/Guayaquil",
    "contact": {
      "email": "downtown@merchant.com",
      "phone": "+593991234567"
    },
    "location": {
      "latitude": -2.1894,
      "longitude": -79.8891,
      "address_line_1": "Av. 9 de Octubre 123",
      "city": "Guayaquil",
      "country": "Ecuador",
      "postal_code": "090101",
      "business_name": "Downtown Kitchen S.A."
    },
    "channels": {
      "APP": {
        "id": "app",
        "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "name": "Mobile app",
        "fulfillment": {
          "PICKUP": {
            "uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
            "id": "pickup",
            "type": "PICKUP",
            "name": "Pickup",
            "pricing": {
              "is_tax_inclusive": true,
              "minimum_order_value": 0,
              "maximum_order_value": 500,
              "tax_rate": 0.15,
              "fees": []
            },
            "coverage_zones": [],
            "availability": {
              "status": "OPEN",
              "schedules": [{
                "monday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "tuesday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "wednesday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "thursday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "friday": { "start_time": "09:00:00", "end_time": "22:00:00" }
              }]
            }
          }
        }
      }
    },
    "payments": {
      "orderable": true,
      "methods": []
    },
    "cms_template_id": null,
    "cms": null,
    "overrides": []
  }
}
Returns the full configuration for one store. Use this endpoint after the customer selects a location to load fulfillment options, channel availability, and payment methods for checkout.
Requires a Fire spark access token obtained through token exchange.

Headers

HeaderRequiredDescription
x-brand-idNoFilter stores by brand. External brand identifier — alphanumeric characters, _, and - only. 1–64 characters. When omitted, all stores for the merchant are returned.

Path parameters

ParameterRequiredDescription
idYesExternal store identifier. Alphanumeric, _, and - only. 1–64 characters.

Request

curl "https://firespark.vercel.app/api/storefront/v1/stores/downtown-kitchen" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "x-brand-id: 0001"

Response

The response wraps a single store object in data. The shape matches the list stores endpoint.
{
  "data": {
    "id": "downtown-kitchen",
    "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "brand_id": "0001",
    "name": "Downtown Kitchen",
    "status": "ACTIVE",
    "timezone": "America/Guayaquil",
    "contact": {
      "email": "downtown@merchant.com",
      "phone": "+593991234567"
    },
    "location": {
      "latitude": -2.1894,
      "longitude": -79.8891,
      "address_line_1": "Av. 9 de Octubre 123",
      "city": "Guayaquil",
      "country": "Ecuador",
      "postal_code": "090101",
      "business_name": "Downtown Kitchen S.A."
    },
    "channels": {
      "APP": {
        "id": "app",
        "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "name": "Mobile app",
        "fulfillment": {
          "PICKUP": {
            "uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
            "id": "pickup",
            "type": "PICKUP",
            "name": "Pickup",
            "pricing": {
              "is_tax_inclusive": true,
              "minimum_order_value": 0,
              "maximum_order_value": 500,
              "tax_rate": 0.15,
              "fees": []
            },
            "coverage_zones": [],
            "availability": {
              "status": "OPEN",
              "schedules": [{
                "monday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "tuesday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "wednesday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "thursday": { "start_time": "09:00:00", "end_time": "22:00:00" },
                "friday": { "start_time": "09:00:00", "end_time": "22:00:00" }
              }]
            }
          }
        }
      }
    },
    "payments": {
      "orderable": true,
      "methods": []
    },
    "cms_template_id": null,
    "cms": null,
    "overrides": []
  }
}

Store fields

See the list stores reference for the full schema, including contact, location, channels, payments, cms_template_id, cms, and overrides.
Check channels[channel].fulfillment[type].availability.status before showing checkout. A store can be OPEN for one fulfillment type and TEMPORARILY_CLOSED for another.

Error responses

StatusDescription
401Missing or invalid access token.
403Token does not have access to this store.
404No store found with the given id, or the store does not belong to the brand in x-brand-id.